package com.serviceimpl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.javabean.Product;
import com.mapper.ProductMapper;
import com.service.ProductManagerService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;

@Service
public class ProductManagerServiceImpl implements ProductManagerService {
    @Resource
    ProductMapper productMapper;

    @Override
    public PageInfo<Product> findAll(int page, int limit,String productName) {
        //在service执行之前 设置分页插件
        //会通过aop在sql执行前 根据参数 设置分页条件
        PageHelper.startPage(page, limit);
        ArrayList<Product> products = productMapper.selectAll(productName);
        //由于页面需要展示相应的页面数据信息
        //总条数 总页数 当前页数 所以PageHelper 额外提供了 pageInfo这个实体类存储这些数据
        //PageInfo代表页面详情 使用查询返回的数据创建
        //可以将pageInfo直接返回到页面进行使用
        PageInfo<Product> pageInfo=new PageInfo<>(products);
        return pageInfo;
    }

    @Override
    public Product findById(int id) {
        return productMapper.selectById(id);
    }

    @Override
    public int editProduct(Product product) {
        return productMapper.updateByProduct(product);
    }

    @Override
    public int addProduct(Product product) {
        return productMapper.insertProduct(product);
    }

    @Override
    public int removeProduct(int id) {
        return productMapper.deleteById(id);
    }

    @Override
    public int removeListProduct(ArrayList<Integer> ids) {
        return productMapper.delteByList(ids);
    }
}
